package thread;

public class JoinDemo extends Thread{
	public void run(){
		System.out.println(this.getName()+"开始执行");
		for(int i =0;i<6;i++){
			System.out.println(this.getName()+"运行了"+i+"次");
		}
		System.out.println(this.getName()+"线程执行完毕");
	}
	public JoinDemo(String name){
		super(name);
	}
	public static void main(String[] args) {
		//在1线程调用2的join，会让1处于阻塞状态，开始执行2.直到2执行完毕。
		//如果传了long的参数，则会执行完这个时间无论2是否完毕，1会中断阻塞状态。进入就绪。如果时间用不完，也会让1中断阻塞。
		System.out.println("正在运行的线程是"+Thread.currentThread().getName());
		new JoinDemo("11#").start();
		for(int j=0;j<10;j++){
			if(j==5){
				JoinDemo jd = new JoinDemo(j+"#");
				jd.start();
				try {
					jd.join(10000);
					System.out.println("正在运行的线程是"+Thread.currentThread().getName());
				} catch (InterruptedException e) {
					// TODO Auto-generated catch block
					e.printStackTrace();
				}
				
			}
		}
		new JoinDemo("12#").start();
	}
}
